# -*- coding:utf-8 -*-
# 递归统计文件大小

import os

memory = [] # 定义一个空集合，用来接收文件大小

def getsize(dir1):
    dlist = os.listdir(dir1) # 获取dir1下的所有文件
    for f in dlist:
        file1 = os.path.join(dir1,f) # 获取dir1与f组合后的路径

        if os.path.isfile(file1): # 判断是否为文件
            filesize = os.path.getsize(file1) # 如果是文件，则获取file1文件的大小

            print("文件名称：{}；大小为：{}字节".format(os.path.basename(file1),filesize))
                                        # 打印文件夹名称 os.path.basename(file1)；及打印文件夹大小，默认以字节输出
            memory.append(filesize)  # 将文件的大小添加的列表

        if os.path.isdir(file1): # 判断是否为文件夹
            getsize(file1) # 如果是文件夹，则递归获取文件夹里文件的大小

inputName = input("请输入文件路径：").strip() # 用户自己输入文件路径，strip()删除路径前后的空格或换行符或字符序列
getsize(inputName)

print("文件的总大小为：{}字节".format(sum(memory))) # 将所有文件的大小求和并打印
